<template>
  <button @click="openModal">Open Modal</button>
  <!-- 添加按钮以打开模态框 -->
  <div v-if="isModalOpen" class="modal" v-trap-focus>
    <div class="modal-content">
      <el-button>Modal Title</el-button>
      <p>Some modal content...</p>
      <el-input v-model="input" />
      <button @click="closeModal">Close</button>
      <!-- 点击关闭模态框 -->
    </div>
  </div>
</template>

<script setup>
import { TrapFocus as vTrapFocus } from "element-plus"
const isModalOpen = ref(false)
const input = ref("")
const openModal = () => {
  isModalOpen.value = true // 设置 isModalOpen 为 true 来显示模态框
}

const closeModal = () => {
  isModalOpen.value = false // 设置 isModalOpen 为 false 来隐藏模态框
}
</script>

<style>
.modal {
  position: fixed; /* 固定定位，使模态框始终显示在页面可视区域 */
  top: 0;
  left: 0;
  width: 100%; /* 宽度占满整个视窗 */
  height: 100%; /* 高度占满整个视窗 */
  background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色背景 */
  display: flex;
  align-items: center; /* 垂直居中 */
  justify-content: center; /* 水平居中 */
}

.modal-content {
  background-color: #fff; /* 白色背景 */
  padding: 20px; /* 内边距 */
  border-radius: 5px; /* 边角圆滑 */
  width: 500px; /* 定义一个固定宽度 */
  max-width: 80%; /* 适应小屏幕 */
}

button {
  cursor: pointer; /* 将鼠标悬停在按钮上时显示指针 */
  padding: 10px 20px; /* 按钮内边距 */
  margin-top: 20px; /* 顶部外边距，特别是关闭按钮 */
  border: none; /* 移除边框 */
  background-color: #007bff; /* 蓝色背景 */
  color: white; /* 白色文字 */
  border-radius: 5px; /* 边角圆滑 */
}

button:hover {
  background-color: #0056b3; /* 鼠标悬停时的背景颜色 */
}
</style>
